package com.open.capacity.finance.service;

import com.open.capacity.finance.dto.AuditModelBaseResult;
import com.open.capacity.finance.entity.AuditModel;

import com.open.capacity.commons.PageResult;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import java.util.List;

/**
 * 审计模型
 *
 * @author
 * @email
 * @date 2023-02-01 09:14:56
 */
public interface AuditModelService {
    /**
     * 添加
     *
     * @param auditModel
     */
    int save(AuditModel auditModel);

    /**
     * 修改
     *
     * @param auditModel
     */
    int update(AuditModel auditModel);

    /**
     * 更新状态
     *
     * @param id
     * @param status
     * @return
     */
    int updateStatus(String id, Integer status);

    /**
     * 删除
     *
     * @param id
     */
    int delete(String id);


    /**
     * 查询记录
     *
     * @param id
     * @return
     */
    AuditModel findById(String id);


    /**
     * 查询记录
     *
     * @param ids
     * @return
     */
    List<AuditModel> findByIds(String ids);

    /**
     * 分页
     *
     * @param params
     * @return
     */
    PageResult<AuditModel> pageAll(Map<String, Object> params);

    /**
     * 列表
     *
     * @param params
     * @return
     */
    List<AuditModel> findAll(Map<String, Object> params);

    /**
     * 执行分析
     *
     * @param modelIds
     */
    void analyseModel(List<String> modelIds, String companyId, Map<String, Object> param);

    /**
     * 导出excel
     *
     * @param params
     * @param response
     */
    void exportExcel(Map<String, Object> params, HttpServletResponse response);

    /**
     * 执行分析
     *
     * @param param
     */
    AuditModelBaseResult previewResult(Map<String, Object> param);
}

